-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat(eos_designs): Add suport for l3_port_channel_interfaces for WAN #4752
base: devel
Are you sure you want to change the base?
Feat(eos_designs): Add suport for l3_port_channel_interfaces for WAN #4752
Conversation
Review docs on Read the Docs To test this pull request: # Create virtual environment for this testing below the current directory
python -m venv test-avd-pr-4752
# Activate the virtual environment
source test-avd-pr-4752/bin/activate
# Install all requirements including PyAVD
pip install "pyavd[ansible] @ git+https://github.com/ashenoy-arista/avd.git@samplePRBranch#subdirectory=python-avd" --force
# Point Ansible collections path to the Python virtual environment
export ANSIBLE_COLLECTIONS_PATH=$VIRTUAL_ENV/ansible_collections
# Install Ansible collection
ansible-galaxy collection install git+https://github.com/ashenoy-arista/avd.git#/ansible_collections/arista/avd/,samplePRBranch --force
# Optional: Install AVD examples
cd test-avd-pr-4752
ansible-playbook arista.avd.install_examples |
2f1a500
to
d3086d9
Compare
d3086d9
to
7d8c276
Compare
...on-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
Show resolved
Hide resolved
...on-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type_l3_port_channels.schema.yml
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/schema/schema_fragments/defs_node_type.schema.yml
Outdated
Show resolved
Hide resolved
a8fa6b9
to
1d61e17
Compare
2e10ead
to
f35199a
Compare
cfae876
to
fccd4c8
Compare
b8175d8
to
ffc3188
Compare
...rista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/node-type-l3-port-channels.yml
Outdated
Show resolved
Hide resolved
...rista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/node-type-l3-port-channels.yml
Outdated
Show resolved
Hide resolved
...rista/avd/molecule/eos_designs_unit_tests/inventory/host_vars/node-type-l3-port-channels.yml
Outdated
Show resolved
Hide resolved
peer: peerDevice2 | ||
peer_interface: Ethernet1/12 | ||
speed: "forced 10000full" | ||
- # peer, peer_interface not set, use one from parent L3 Port-Channel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should not use the parent peer interface in descriptions since it would be misleading (port-channel something). But I agree that we can inherit the peer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed the comment in yml file and underlying logic to not derive peer_interface
info from parent Port-Channel for a member eth port.
On a related note, what should we populate for peer_type
for such member Eth ports under L3 Port-Channel when generating structured config via _get_l3_port_channel_member_ports_cfg() ?
Currently choosing not to set any value for peer_type
.
Please let me know if there is a preference here.
python-avd/pyavd/_eos_designs/structured_config/base/__init__.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/network_services/utils_wan.py
Outdated
Show resolved
Hide resolved
python-avd/pyavd/_eos_designs/structured_config/underlay/static_routes.py
Outdated
Show resolved
Hide resolved
23138da
to
c689203
Compare
c689203
to
41612ab
Compare
type: str | ||
description: |- | ||
Interface description. | ||
If not set a default description will be configured with '[<peer>[ <peer_port_channel>]]'. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If not set a default description will be configured with '[<peer>[ <peer_port_channel>]]'. | |
If not set, a default description will be configured with '[<peer>[ <peer_port_channel>]]'. |
type: str | ||
description: |- | ||
Interface description for this member. | ||
If not set a default description will be configured with '[<peer>[ <peer_interface>]]'. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If not set a default description will be configured with '[<peer>[ <peer_interface>]]'. | |
If not set, a default description will be configured with '[<peer>[ <peer_interface>]]'. |
Change Summary
Revised schema to support L3 Port-Channel interfaces and supporting changes to
eos_designs
Primary use-case is to allow such interfaces as wan-facing interfaces.
Related Issue(s)
Fixes #4695
Component(s) name
arista.avd.eos_designs
Proposed changes
How to test
This change introduces revised schema within
eos_designs
with node keyl3_port_channels
to represent L3 port-channel interfaces that may be used as wan-facing interfaces.
Includes logic to support the newly added schema and unit tests to validate handling of newly added schema attributes.
Checklist
User Checklist
Repository Checklist